package com.tedu.api.thread;

/**
 * 软件--多个或者一个进程【理解：工厂】----很多线程【理解：工厂工人】
 * 线程创建方式三种：
 * 1.Thread类--创建线程，编写步骤：
 *                         ①类继承Thread线程类
 *                         ②run方法--线程功能
 *                         ③start方法--启动线程
 *
 * 2.Runnable接口--创建线程
 * 3.匿名内部类方式--Lambda表达式
 */
public class ThreadAPI {
    public static void main(String[] args) {
        //创建线程--多态造型1：父类引用指向子类的对象
        Thread t1 = new MyThread();
        //启动线程不是调run【定义功能】 start启动线程
        t1.start();
        //练习：创建线程类：MyThread1继承Thread---
        Thread t2 = new MyThread1();
        t2.start();
        //线程功能：1000次语句块
        //一心一意 查看2000次输出语句是否交叉
        //Lambda
        Thread Thread1 = new Thread(() -> {
            for (int i = 0; i < 1000; i++) {
                System.out.println("一愣一愣的");
            }
        });
        Thread1.start();
        Thread Thread2 = new Thread(() -> {
            for (int i = 0; i < 2000; i++) {
                System.out.println("一心一意的");
            }
        });
    }

    private static class MyThread extends Thread {

            //线程功能---run方法--指定线程功能：执行1000次：语句块
            public void run() {
                for (int i = 0; i < 1000; i++) {
                    System.out.println("一愣一愣的");
                }
            }



    }

    private static class MyThread1 extends Thread {
        public void run() {
            for (int i = 0; i < 2000; i++) {
                System.out.println("一心一意的");
            }
        }
    }
}




